/*
 *
 * 　　┏┓　　　┏┓+ +
 * 　┏┛┻━━━┛┻┓ + +
 * 　┃　　　　　　　┃
 * 　┃　　　━　　　┃ ++ + + +
 *  ████━████ ┃+
 * 　┃　　　　　　　┃ +
 * 　┃　　　┻　　　┃
 * 　┃　　　　　　　┃ + +
 * 　┗━┓　　　┏━┛
 * 　　　┃　　　┃
 * 　　　┃　　　┃ + + + +
 * 　　　┃　　　┃
 * 　　　┃　　　┃ +  神兽保佑
 * 　　　┃　　　┃    代码无bug
 * 　　　┃　　　┃　　+
 * 　　　┃　 　　┗━━━┓ + +
 * 　　　┃ 　　　　　　　┣┓
 * 　　　┃ 　　　　　　　┏┛
 * 　　　┗┓┓┏━┳┓┏┛ + + + +
 * 　　　　┃┫┫　┃┫┫
 * 　　　　┗┻┛　┗┻┛+ + + +
 *
 */
import { createApp } from "vue";
import App from "./App.vue";
// 路由
import router from "./router";
// Pinia
import { createPinia } from "pinia";
// ElementPlus
import ElementPlus from "element-plus";
import "element-plus/dist/index.css";
// 共用CSS
import "@/assets/css/base.less";
// api
import http from "./api/http";
// mitt
import mitt from "mitt";
// 路由守卫
import "./permission.js";

import locale from "element-plus/lib/locale/lang/zh-cn"; //中文
// 全局过滤
import filters from "./filters/index.js";

const app = createApp(App)
  .use(router)
  .use(createPinia())
  .use(ElementPlus, { locale });
app.config.globalProperties.filters = filters;
app.config.globalProperties.$get = http.get;
app.config.globalProperties.$post = http.post;
app.config.globalProperties.$mitt = mitt();

// 全局组件
// 面包屑
import cBreadcrumb from "@/components/Breadcrumb/index.vue";
app.component("cBreadcrumb", cBreadcrumb);
// 主要模板
import cMainTemplate from "@/components/Template/MainTemplate.vue";
app.component("cMainTemplate", cMainTemplate);
// Table模板
import cTableTemplate from "@/components/Template/TableTemplate.vue";
app.component("cTableTemplate", cTableTemplate);
// Page模板
import cPageTemplate from "@/components/Template/PageTemplate.vue";
app.component("cPageTemplate", cPageTemplate);

// 金钱输入框
import cMoneyInput from "@/components/Form/MoneyInput.vue";
app.component("cMoneyInput", cMoneyInput);
// 数字输入框
import cNumberInput from "@/components/Form/NumberInput.vue";
app.component("cNumberInput", cNumberInput);
// 车辆信息下拉框
import cVehicleSelect from "@/components/Form/VehicleSelect.vue";
app.component("cVehicleSelect", cVehicleSelect);
// 港口信息下拉框
import cPortSelect from "@/components/Form/PortSelect.vue";

app.component("cPortSelect", cPortSelect);
app.mount("#app");
